利用可能なトランザクション ID の上限に達し、エラーが発生したときの対処方法
困っていた内容
Redshift クラスターにてクエリを実行した際に下記のエラーが発生しました。
ERROR: This cluster has reached the limit for new query transaction IDs and will no longer accept new queries. To reset the transaction ID, perform classic resize operation on your cluster. Contact AWS Support if you need assistance.
原因は何でしょうか。また、対処方法を教えてください。
どう対応すればいいの?
$ aws redshift resize-cluster --cluster-identifier <クラスター識別子> --classic --node-type <サイズ変更前のノードタイプ> --number-of-nodes <サイズ変更前のノード数>
現在の利用数を確認する方法
Redshift クラスターにて利用されているトランザクション ID につきましては、システムテーブルに記録される xid の値からご確認頂くことが可能です。 そのため、例えば SVL_STATEMENTTEXT[3] に記録されているレコードの xid の最大値を定期的にご確認頂くことで、その時点でどの程度のトランザクション ID が利用されているか把握できます。 必要に応じてこちらの対応をご検討頂けますと幸いです。
参考情報
[1] Amazon Redshift でのクラスター管理の概要
[2] resize-cluster